/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.





Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/

 

#ifndef CompileModel_h
#define CompileModel_h

@interface ComputeTypeDefine :NSObject

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// BuildResourceMem
@property (strong,nonatomic,nonnull)  NSNumber*  buildResourceMem;

/// BuildResourceCpu
@property (strong,nonatomic,nonnull)  NSNumber*  buildResourceCpu;


-(id) initWithName:(NSString*) name
    buildResourceMem:(NSNumber*)buildResourceMem
    buildResourceCpu:(NSNumber*)buildResourceCpu;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CodeTypeDefine :NSObject

/// Label
@property (strong,nonatomic,nonnull)  NSString*  label;

/// Value
@property (strong,nonatomic,nonnull)  NSString*  value;


-(id) initWithLabel:(NSString*) label
    value:(NSString*)value;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface MailTypeDefine :NSObject

/// Label
@property (strong,nonatomic,nonnull)  NSString*  label;

/// Value
@property (strong,nonatomic,nonnull)  NSString*  value;


-(id) initWithLabel:(NSString*) label
    value:(NSString*)value;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CompilerTypeDefine :NSObject

/// Label
@property (strong,nonatomic,nonnull)  NSString*  label;

/// Value
@property (strong,nonatomic,nonnull)  NSString*  value;


-(id) initWithLabel:(NSString*) label
    value:(NSString*)value;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface TagDefine :NSObject

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// BuildImage
@property (strong,nonatomic,nonnull)  NSString*  buildImage;


-(id) initWithName:(NSString*) name
    buildImage:(NSString*)buildImage;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface OssDefine :NSObject

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// Id
@property (strong,nonatomic,nonnull)  NSString*  idValue;

/// OssHost
@property (strong,nonatomic,nonnull)  NSString*  ossHost;


-(id) initWithName:(NSString*) name
    idValue:(NSString*)idValue
    ossHost:(NSString*)ossHost;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface TimeoutDefine :NSObject

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// Timeout
@property (strong,nonatomic,nonnull)  NSNumber*  timeout;


-(id) initWithName:(NSString*) name
    timeout:(NSNumber*)timeout;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SimpleJob :NSObject

/// 构建任务uuid
@property (strong,nonatomic,nonnull)  NSString*  uuid;

/// 构建名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 构建开始时间
@property (strong,nonatomic,nonnull)  NSNumber*  buildStartAt;

/// 构建类型
@property (strong,nonatomic,nonnull)  NSString*  compilerType;

/// 构建状态
@property (strong,nonatomic,nonnull)  NSString*  buildStatus;


-(id) initWithUuid:(NSString*) uuid
    name:(NSString*)name
    buildStartAt:(NSNumber*)buildStartAt
    compilerType:(NSString*)compilerType
    buildStatus:(NSString*)buildStatus;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CompilerTypes :NSObject

/// 任务uuid
@property (strong,nonatomic,nonnull)  NSString*  idValue;

/// 构建类型
@property (strong,nonatomic,nonnull)  NSString*  compilerType;


-(id) initWithId:(NSString*) idValue
    compilerType:(NSString*)compilerType;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface JobRequest :NSObject

/// 项目名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 源提供商，代码存储类型代码存储类型， 目前只支持github
@property (strong,nonatomic,nonnull)  NSString*  codeType;

/// 仓库地址，代码clone路径
@property (strong,nonatomic,nonnull)  NSString*  codeRepoUrl;

/// 代码分支
@property (strong,nonatomic,nonnull)  NSString*  codeRepoBranch;

/// 获取用户OSS库用，用户云存储路径用户云存储路径，如果为空，使用公用的云存储
@property (strong,nonatomic,nonnull)  NSString*  ossPath;

/// 上传区域，用户云存储主机，实际为用户云存储所在地域
@property (strong,nonatomic,nonnull)  NSString*  ossHost;

/// 获取用户OSS库用，用户云存储bucket，如果为空，使用公用的云存储
@property (strong,nonatomic,nonnull)  NSString*  ossBucket;

/// 选择类型 和 运行版本 共同拼出此项，编译镜像地址
@property (strong,nonatomic,nonnull)  NSString*  buildImage;

/// 构建规范，选择在源代码供目录中使用build.yml则为false，选择插入构建命令则为true，这项为true，则buildSetConfig需要有内容，如果这项为false，即使buildSetConfig有内容，也不生效
@property (strong,nonatomic,nonnull)  NSNumber*  isUserBuildSetConfig;

/// 插入构建命令，isUserBuildSetConfig选择true时，这项让用户填写内容，内容从接口/regions/{regionId}/jobs/default/buildSet 获取
@property (strong,nonatomic,nonnull)  NSString*  buildSetConfig;

/// 超时时间，单位秒
@property (strong,nonatomic,nonnull)  NSNumber*  buildTimeOut;

/// 计算类型中 cpu分配核数
@property (strong,nonatomic,nonnull)  NSNumber*  buildResourceCpu;

/// 计算类型中 内存分配大小，单位MB
@property (strong,nonatomic,nonnull)  NSNumber*  buildResourceMem;

/// 通知邮件
@property (strong,nonatomic,nonnull)  NSString*  noticeMail;

/// 通知频率， MAIL_FAILED失败时通知，MAIL_EVERY每次构建就通知
@property (strong,nonatomic,nonnull)  NSString*  noticeType;

/// 构建类型
@property (strong,nonatomic,nonnull)  NSString*  compilerType;

/// 镜像注册表名
@property (strong,nonatomic,nonnull)  NSString*  dockerRegistry;

/// 镜像仓库名
@property (strong,nonatomic,nonnull)  NSString*  dockerRepository;

/// 注册表的URI
@property (strong,nonatomic,nonnull)  NSString*  dockerRegistryUri;


-(id) initWithName:(NSString*) name
    codeType:(NSString*)codeType
    codeRepoUrl:(NSString*)codeRepoUrl
    codeRepoBranch:(NSString*)codeRepoBranch
    ossPath:(NSString*)ossPath
    ossHost:(NSString*)ossHost
    ossBucket:(NSString*)ossBucket
    buildImage:(NSString*)buildImage
    isUserBuildSetConfig:(NSNumber*)isUserBuildSetConfig
    buildSetConfig:(NSString*)buildSetConfig
    buildTimeOut:(NSNumber*)buildTimeOut
    buildResourceCpu:(NSNumber*)buildResourceCpu
    buildResourceMem:(NSNumber*)buildResourceMem
    noticeMail:(NSString*)noticeMail
    noticeType:(NSString*)noticeType
    compilerType:(NSString*)compilerType
    dockerRegistry:(NSString*)dockerRegistry
    dockerRepository:(NSString*)dockerRepository
    dockerRegistryUri:(NSString*)dockerRegistryUri;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Job :NSObject

/// 构建任务uuid
@property (strong,nonatomic,nonnull)  NSString*  uuid;

/// 创建时间戳
@property (strong,nonatomic,nonnull)  NSNumber*  createdAt;

/// 最后一次更新时间
@property (strong,nonatomic,nonnull)  NSNumber*  updatedAt;

/// 构建名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 代码存储类型，目前只支持github
@property (strong,nonatomic,nonnull)  NSString*  codeType;

/// 代码clone路径
@property (strong,nonatomic,nonnull)  NSString*  codeRepoUrl;

/// 代码名称的显示Label
@property (strong,nonatomic,nonnull)  NSString*  codeRepoUrlLabel;

/// 分支
@property (strong,nonatomic,nonnull)  NSString*  codeRepoBranch;

/// 创建者
@property (strong,nonatomic,nonnull)  NSString*  createUserName;

/// 是否是私有仓库
@property (strong,nonatomic,nonnull)  NSNumber*  codeRepoPrivate;

/// 最后一次更细者
@property (strong,nonatomic,nonnull)  NSString*  createUserPin;

/// 用户云存储路径，如果为空，使用公用的云存储
@property (strong,nonatomic,nonnull)  NSString*  ossPath;

/// 用户云存储主机，实际为用户云存储所在地域
@property (strong,nonatomic,nonnull)  NSString*  ossHost;

/// 用户云存储bucket，如果为空，使用公用的云存储
@property (strong,nonatomic,nonnull)  NSString*  ossBucket;

/// 编译镜像地址
@property (strong,nonatomic,nonnull)  NSString*  buildImage;

/// 编译镜像的显示Label
@property (strong,nonatomic,nonnull)  NSString*  buildImageLabel;

/// 是否在页面配置构建方式，这项为true，则buildSetConfig需要有内容，如果这项为false，即使buildSetConfig有内容，也不生效
@property (strong,nonatomic,nonnull)  NSNumber*  isUserBuildSetConfig;

/// 见isUserBuildSetConfig的说明
@property (strong,nonatomic,nonnull)  NSString*  buildSetConfig;

/// 超时时间，单位秒
@property (strong,nonatomic,nonnull)  NSNumber*  buildTimeOut;

/// cpu分配核数
@property (strong,nonatomic,nonnull)  NSNumber*  buildResourceCpu;

/// 内存分配大小，单位MB
@property (strong,nonatomic,nonnull)  NSNumber*  buildResourceMem;

/// 通知邮件
@property (strong,nonatomic,nonnull)  NSString*  noticeMail;

/// 通知频率， MAIL_FAILED失败时通知，MAIL_EVERY每次构建就通知
@property (strong,nonatomic,nonnull)  NSString*  noticeType;

/// 构建类型
@property (strong,nonatomic,nonnull)  NSString*  compilerType;

/// 镜像注册表名
@property (strong,nonatomic,nonnull)  NSString*  dockerRegistry;

/// 镜像仓库名
@property (strong,nonatomic,nonnull)  NSString*  dockerRepository;

/// 注册表的URI
@property (strong,nonatomic,nonnull)  NSString*  dockerRegistryUri;


-(id) initWithUuid:(NSString*) uuid
    createdAt:(NSNumber*)createdAt
    updatedAt:(NSNumber*)updatedAt
    name:(NSString*)name
    codeType:(NSString*)codeType
    codeRepoUrl:(NSString*)codeRepoUrl
    codeRepoUrlLabel:(NSString*)codeRepoUrlLabel
    codeRepoBranch:(NSString*)codeRepoBranch
    createUserName:(NSString*)createUserName
    codeRepoPrivate:(NSNumber*)codeRepoPrivate
    createUserPin:(NSString*)createUserPin
    ossPath:(NSString*)ossPath
    ossHost:(NSString*)ossHost
    ossBucket:(NSString*)ossBucket
    buildImage:(NSString*)buildImage
    buildImageLabel:(NSString*)buildImageLabel
    isUserBuildSetConfig:(NSNumber*)isUserBuildSetConfig
    buildSetConfig:(NSString*)buildSetConfig
    buildTimeOut:(NSNumber*)buildTimeOut
    buildResourceCpu:(NSNumber*)buildResourceCpu
    buildResourceMem:(NSNumber*)buildResourceMem
    noticeMail:(NSString*)noticeMail
    noticeType:(NSString*)noticeType
    compilerType:(NSString*)compilerType
    dockerRegistry:(NSString*)dockerRegistry
    dockerRepository:(NSString*)dockerRepository
    dockerRegistryUri:(NSString*)dockerRegistryUri;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateHookParams :NSObject

/// 回调的URL
@property (strong,nonatomic,nonnull)  NSString*  url;

/// 回调的密钥
@property (strong,nonatomic,nonnull)  NSString*  token;

/// 否是支持ssl
@property (strong,nonatomic,nonnull)  NSNumber*  ssl;

/// 代码类型
@property (strong,nonatomic,nonnull)  NSString*  type;


-(id) initWithUrl:(NSString*) url
    token:(NSString*)token
    ssl:(NSNumber*)ssl
    type:(NSString*)type;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface SimpleBuild :NSObject

/// 构建任务的uuid
@property (strong,nonatomic,nonnull)  NSString*  uuid;

/// 构建任务所属的job名
@property (strong,nonatomic,nonnull)  NSString*  jobName;

/// 构建任务创建时间
@property (strong,nonatomic,nonnull)  NSNumber*  createdAt;

/// 构建类型
@property (strong,nonatomic,nonnull)  NSString*  compilerType;

/// 构建任务的运行状态
@property (strong,nonatomic,nonnull)  NSString*  status;

/// 构建任务运行时间
@property (strong,nonatomic,nonnull)  NSNumber*  duration;


-(id) initWithUuid:(NSString*) uuid
    jobName:(NSString*)jobName
    createdAt:(NSNumber*)createdAt
    compilerType:(NSString*)compilerType
    status:(NSString*)status
    duration:(NSNumber*)duration;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface RegionTypeDefine :NSObject

/// Id
@property (strong,nonatomic,nonnull)  NSString*  idValue;

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;


-(id) initWithId:(NSString*) idValue
    name:(NSString*)name;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ImageDefine :NSObject

/// Name
@property (strong,nonatomic,nonnull)  NSString*  name;

/// Tags
@property (strong,nonatomic,nonnull)  NSArray<TagDefine*>*  tags;


-(id) initWithName:(NSString*) name
    tags:(NSArray<TagDefine*>*)tags;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Config :NSObject

/// 运行镜像
@property (strong,nonatomic,nonnull)  NSArray<ImageDefine*>*  image;

/// 源提供商选项
@property (strong,nonatomic,nonnull)  NSArray<CodeTypeDefine*>*  codeType;

/// 构建存放
@property (strong,nonatomic,nonnull)  NSArray<OssDefine*>*  oss;

/// 超时时间
@property (strong,nonatomic,nonnull)  NSArray<TimeoutDefine*>*  timeout;

/// 计算类型
@property (strong,nonatomic,nonnull)  NSArray<ComputeTypeDefine*>*  computeType;

/// 邮件类型
@property (strong,nonatomic,nonnull)  NSArray<MailTypeDefine*>*  mailType;

/// 编译类型
@property (strong,nonatomic,nonnull)  NSArray<CompilerTypeDefine*>*  compilerType;


-(id) initWithImage:(NSArray<ImageDefine*>*) image
    codeType:(NSArray<CodeTypeDefine*>*)codeType
    oss:(NSArray<OssDefine*>*)oss
    timeout:(NSArray<TimeoutDefine*>*)timeout
    computeType:(NSArray<ComputeTypeDefine*>*)computeType
    mailType:(NSArray<MailTypeDefine*>*)mailType
    compilerType:(NSArray<CompilerTypeDefine*>*)compilerType;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end

#endif /* CompileModel_h */
